<?php

namespace Syrius\Adapter;


/**
 * Livello intermedio tra gli oggetti e il driver di connessione
 * @package	Adapter
 * @author	Domenico Biancardi <domenico.biancardi@gmail.com>
 * @link	http://code.google.com/p/syrius/
 *
 */ class DAO {

	/**
	 * Alla creazione dell'oggetto viene caricata la connessione
	 */
	public function __construct() {
	}

	/**
	 * Effettua il migrate a partire da un modello
	 * @param \Syrius\Model\Model $model
	 */
	public function migrate(\Syrius\Model\Model $model) {
		$migrate = new Migrate ();
		try {
			$sql = $migrate->update($model);
		} catch (\Syrius\Exception\Query $e) {
			$sql = $migrate->create($model);
		}
		$query = new Query ($sql);
	}


	/**
	 * Effettua il migrate di una view a partire da un modello
	 * @param \Syrius\Model\View $model
	 */
	public function migrateView(\Syrius\Model\View $model) {
		$stat = new Stat ();
		$migrate = new Migrate_View ();
		try {
			$stat->tableExists($model->source());
			$sql = $migrate->update($model);
		} catch (\Syrius\Exception\Table_Not_Exists $e) {
			$sql = $migrate->create($model);
		}
		$query = new Query ($sql);
	}

	/**
	 * Effettua il migrate di una funzione
	 * @param \Syrius\Model\FunctionM $model
	 */
	public function migrateFunction(\Syrius\Model\FunctionM $model) {
		$migrate = new Migrate_Function ();
		$sql = $migrate->create($model);
		$query = new Query ($sql);
	}
}

?>
